// 导入 http 模块
import http from 'wechat-http'
// 基础路径
http.baseURL = 'https://live-api.itheima.net'
// 响应拦截器
http.intercept.response=async(res)=>{
  //返回数据格式（减少一层data）

  const app = getApp()


  if (res.data.code===10000) {
    return res.data
  }else if(res.data.code===401){

    if (res.config.url.includes('/refreshToken')) {
      // 获取当前页面的路径，保证登录成功后能跳回到原来页面
      const pageStack = getCurrentPages()
      const currentPage = pageStack.pop()
      const redirectURL = currentPage.route
      // 跳由跳转（登录页面）
      return wx.redirectTo({
        url: '/pages/login/index?redirectURL=/' + redirectURL,
      })
    }
    // 调用接口获取新的 token
   const res1 =await http.post('/refreshToken',{},{
     header:{
       Authorization:'Bearer ' + wx.getStorageSync('refreshToken')
     }
   })
      // 重新存储新的 token
      app.setToken('token', res1.data.token)
      app.setToken('refreshToken', res1.data.refreshToken)
      res.config.header={Authorization: 'Bearer ' + wx.getStorageSync('token')}
      return http( res.config)
  }
  else{
    wx.utils.toast(res.data.message|| '业务错误')
    return Promise.reject(res.data)
  }

}
http.intercept.request = function (options) {
  // 扩展头信息
  const defaultHeader = {}
  // 身份认证
  defaultHeader.Authorization = 'Bearer ' + getApp().token
  // 与默认头信息合并
  options.header = Object.assign({}, defaultHeader, options.header)
  // 处理后的请求参数
  return options
}
// 挂载到全局对象
wx.http = http
// 普通的模块导出
export default http